package com.suning.sawp.dto.oss;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.springframework.data.mongodb.core.mapping.Document;

/**
 * 
 * 〈一句话功能简述〉导出列队实体类<br>
 * 〈功能详细描述〉
 *
 * @author 17033093
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
@Document(collection="ExportTaskInfo")
public class ExportTaskDto implements Serializable {

    private static final long serialVersionUID = 519864650143523451L;

    /**
     * 主键
     */
    private String id;

    /**
     * 工号
     */
    private String staffId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 软删除标志 <br>
     * 默认0 未删除；1 已删除
     */
    private int deleteFlag;

    /**
     * 导出类的名称
     */
    private String className;

    /**
     * 导出方法的名称(在类中必须是唯一，名称不能重复)
     */
    private String methodName;

    /**
     * 导出的参数值(按方法顺序)
     */
    private List<Object> params;

    /**
     * 导出的参数类型(和参数值一一对应)
     */
    private List<String> paramsType;
    
    public ExportTaskDto(String staffId, String className, String methodName, List<Object> params) {
        super();
        this.staffId = staffId;
        this.createTime = new Date();
        this.deleteFlag = 0;
        this.className = className;
        this.methodName = methodName;
        this.params = params;
    }
    
    public ExportTaskDto(String staffId, String className, String methodName, List<Object> params,
            List<String> paramsType) {
        super();
        this.staffId = staffId;
        this.createTime = new Date();
        this.deleteFlag = 0;
        this.className = className;
        this.methodName = methodName;
        this.params = params;
        this.paramsType = paramsType;
    }

    public ExportTaskDto(String staffId, List<Object> params, List<String> paramsType) {
        super();
        this.staffId = staffId;
        this.params = params;
        this.paramsType = paramsType;
    }

    public ExportTaskDto() {
        super();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public List<Object> getParams() {
        return params;
    }

    public void setParams(List<Object> params) {
        this.params = params;
    }

    public List<String> getParamsType() {
        return paramsType;
    }

    public void setParamsType(List<String> paramsType) {
        this.paramsType = paramsType;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getStaffId() {
        return staffId;
    }

    public void setStaffId(String staffId) {
        this.staffId = staffId;
    }

    public int getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(int deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getMethodName() {
        return methodName;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("ExportTaskDto [id=");
        builder.append(id);
        builder.append(", staffId=");
        builder.append(staffId);
        builder.append(", createTime=");
        builder.append(createTime);
        builder.append(", deleteFlag=");
        builder.append(deleteFlag);
        builder.append(", className=");
        builder.append(className);
        builder.append(", methodName=");
        builder.append(methodName);
        builder.append(", params=");
        builder.append(params);
        builder.append(", paramsType=");
        builder.append(paramsType);
        builder.append("]");
        return builder.toString();
    }
    
    public interface Attributes {
        String EXPORT_TASK_ID = "id";
        String DELETE_FLAG = "deleteFlag";
        String CREATE_TIME = "createTime";
    }

}
